
/*
mokit
题目描述
小星是参加防疫的一名志愿者，每天都为在家中被隔离的居民们送蔬菜包。
他把每层楼看成一个n*n的矩阵。小星需要将蔬菜包送到位于m层的居民手中，
小星想请你帮他计算一下，他能否成功将蔬菜送达。如果能则需要的最少体力，如果不能则输出No。

输入说明
第一行输入2个整数m(1<=m<=30)和n(1<=n<=30)。表示给出m层楼，每层楼大小为n*n。

接下来m个输入n*n的矩阵表示第m层楼的地图

每层楼至多2个楼梯，第一层楼给出一个起点，以及至多2个楼梯，最后一层楼给出1个终点，中间每层楼的起点为上一层楼梯的位置，上楼不消耗体力。

小星可以消耗3体力可以在一个方向上行动2格并穿过第一格上的障碍物

可以消耗1体力行动1格或2格，可以只走1格，也可以走2格（可以转弯）

#表示障碍物

. 表示平地

S表示起点

E表示居民的位置

U表示楼梯

输出说明
可以回到点内时输出一个整数表示送到目标居民家中所消耗的最小体力，无法送达则输出No。



输入样例复制
输入样例1

3 5

##...

S#.U.

##...

.....

.....



..###

..#S#

..###

....#

U...#



.....

.####

....E

.####

S....

输入样例 2

3 5

##...

S#.U.

##...

U....

.....



..#..

..#S.

..#..

S.#..

..#.U



.....

....E

.....

...##

...#S

输入样例 3

3 5

##...

S#.U.

##...

U....

.....



..#..

..#S.

..#..

S.#..

..#.U



.....

....E

...##

..###

..##S

输出样例复制
输出样例 1

12

输出样例 2

10

输出样例 3

No

数据范围提示
样例3说明：因为样例中第三层S往可以通行方向（左侧或上侧）都有两个障碍物，穿过第一个后没有落脚点，所以无法穿过障碍物到达E。



*/